import sys
sys.path.append("../../")

from model.StockBaseInfo import *
from model.CommonDb import *
from controller.MsgController import *
from frameworks.utils.RedisUtil import *
from controller.calc.ParseMiniteController import *
from controller.ApiController import *
import datetime

class MonitorZhangtingStockController:
    def __init__(self,args):
        self.args = args
        self.service = StockBaseInfo()
        self.today = datetime.datetime.now().strftime("%Y-%m-%d")
        self.msg = MsgController()
        self.msgcon = MsgController()
    def run(self):
        if self.args["func"] == "pre_warning":
            return self.execMonitor(self.args)

    """
    获取每日行业的净收入
    f43：最新价 f44：最高 f45：最低 f46:今开 f47：总手数 f48：成交金额 f49：外盘
    f50：量比 f51：涨停 f52：跌停 f55：收益 f57:股票代码 f58：股票名称 f60：昨收 f71:均价
    f84:总股本 f85：流通股本 f92:每股净资产 f105:归属净利润 f116:总市值 f117：流通市值 
    f127：概念板块 f128：地域板块 f135:主力流入 f136:主力流出 f137:主力净流入 f138:超大单流入 f139:超大单流出
    f140：净超大单 f141:大单净流入 f142:大单净流出 f143净大单 f144 中单净流入 f145: 中单净流出
    f146:净中单 f147:小单净流入 f148：小单净流出 f149:净小单 f161：内盘 f162:动态市盈率 f163:静态市盈率
    f164:ttm市盈率 f167：市净率 f168：换手率 f169:涨跌额 f170：涨幅 f173:净资产收益率 
    f183:营业总收入 f184:营业总收入同比增长 f185：归属净利润同比增长 f186:毛利率
    f187:净利率 f188:负债率 f189：上市日期 f190: 每股未分配利润  f191:委比
    f192:尾差 f31:卖5价格 f32:卖5手数 f33:卖4价格 f34:卖4手数 f35:卖3价格 f36:卖3手数
    f37:卖2价格 f38:卖2手数 f39:卖1价格 f40:卖1手数 f19:买1价格 f20:买1手数
    f17:买2价格 f18:买2手数 f15:买3价格 f16:买3手数 f13:买4价格 f14:买4手数
    f11:买5价格 f12:买5手数
    """
    def execMonitor(self,args):
        redis = RedisUtil()
        ck = "zhangting_score_stock_cache"
        data = json.loads(redis.vget(ck))
        dataMap = {}
        for line in data:
            dataMap[line["f57"]] = line

        apiController = ApiController()
        numlist = [1, 2, 3, 9]
        for num in numlist:
            newParam = {}
            newParam["num"] = num
            obj = apiController.getZhangTingPage(newParam)
            for line in obj:
                print("==========================================================================================")
                priceinfo = dataMap[line["code"][2:]]
                miniteData = json.loads(redis.vget("zhangting_score_minite_stock_cache_"+line["code"][2:]))
                parseMiniteController = ParseMiniteController()
                parseMiniteController.run(priceinfo,miniteData)
                """
                content = "股票代码：" + row["code"] + "，股票名称：" + priceinfo["f58"] + "，"
                content += "现在价格为：" + str(price) + "元，"
                if zf < 0:
                    content += "股票开始下跌，跌幅为" + str(zf) + "%"
                info = {
                    "userid": row["userid"],
                    "code": row["code"],
                    "count_day": self.today,
                    "codename": priceinfo["f58"],
                    "type": "stock_alert",
                    "content": content
                }
                self.msgcon.sendFeiShu(info["content"])
                # db.add(info)
                """
